bleh
[mqlkit.git] / Meta COT Expert.mq4.orig
blobc81fc2985c8698f93aee048bfd7ec71adea91abe
1 //+------------------------------------------------------------------+\r
2 //|                                       Meta COT Net Positions.mq4 |\r
3 //|   Copyright © 2009, C-4 (Vasiliy Sokolov, Russia, St.-Petersburg,|\r
4 //|                                      2009), All Rights Reserved. |\r
5 //|                                                   vs-box@mail.ru |\r
6 //+------------------------------------------------------------------+\r
7 #property copyright "Copyright © 2009, C-4, All Rights Reserved."\r
8 #property link      "vs-box@mail.ru"\r
9 #property show_inputs\r
10 extern int  period=26;\r
11 extern int  indicator_tape=21; //Ñìîòðè íîìåðà ñîîòâåòñâóþùèå èíäèêàòîðàì â cotlib.mq4 â ðàçäåëå defines\r
12 int movement_index=6;\r
13 #include <cotlib.mq4>\r
15 int handle;\r
16 int buy_level_down;\r
17 int buy_level_up;\r
18 int sell_level_down;\r
19 int sell_level_up;\r
20 double ticksize;\r
21 int init(){\r
22    //handle=FileOpen("COT - U.S. DOLLAR CONCATENATE.csv",FILE_READ|FILE_CSV);\r
23    //if(handle==-1)Print("Íå óäàåòñÿ çàãðóçèòü ôàéë");\r
24    if(init_data()==false)error=true;\r
25    if(error==false)load_data();\r
26    if(error==false)count_data();\r
27    //if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");\r
28    setparam();\r
29 }\r
31 int start()\r
32 {\r
33    if(Volume[0]==1){\r
34       if(OrdersTotal()>0)return;\r
35       if(buy_level_up==0)return;\r
36       if(type_op()==OP_BUY&&delta_fma()>0&&delta_sma()>0){\r
37          OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-ticksize*100*(period/26),Ask+ticksize*300*(period/26),"",12345,0,Blue);\r
38       }\r
39       if(type_op()==OP_SELL&&delta_fma()<0&&delta_sma()<0){\r
40          OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+ticksize*100*(period/26),Ask-ticksize*300*(period/26),"",12345,0,Red);\r
41       }\r
42       //Print(get_data(WILLCO_OPERATORS, 0));\r
43    }\r
44 }\r
46 double delta_fma()\r
47 {\r
48    //return(iMA(Symbol(),0,5+(1-(period/26)),0,MODE_SMA,PRICE_CLOSE,0)-\r
49    //       iMA(Symbol(),0,5+(1-(period/26)),0,MODE_SMA,PRICE_CLOSE,2));\r
50    return(iMA(Symbol(),0,5,0,MODE_SMA,PRICE_CLOSE,0)-\r
51           iMA(Symbol(),0,5,0,MODE_SMA,PRICE_CLOSE,2));\r
52 }\r
54 double delta_sma()\r
55 {\r
56    return(iMA(Symbol(),PERIOD_W1,period,0,MODE_SMA,PRICE_CLOSE,0)-\r
57           iMA(Symbol(),PERIOD_W1,period,0,MODE_SMA,PRICE_CLOSE,2));\r
58 }\r
60 void setparam()\r
61 {\r
62    switch(indicator_tape){\r
63       case WILLCO_OPERATORS:        // 17\r
64       case INDEX_OI:                // 19\r
65       case INDEX_OPERATORS:         // 21\r
66            buy_level_down=80;\r
67            buy_level_up=100;\r
68            sell_level_down=0;\r
69            sell_level_up=20;\r
70       case WILLCO_NONCOMM:          // 16\r
71       case WILLCO_NONREP:           // 18\r
72       case INDEX_NONCOMM:           // 20\r
73       case INDEX_NONREP:            // 22\r
74            buy_level_down=0;\r
75            buy_level_up=20;\r
76            sell_level_down=80;\r
77            sell_level_up=100;\r
78       case MOVEMENT_NONCOMM:        // 23\r
79       case MOVEMENT_NONREP:         // 25\r
80       case MOVEMENT_OI:             // 26\r
81            /*buy_level_down=-100;\r
82            buy_level_up=-40;\r
83            sell_level_down=40;\r
84            sell_level_up=100;*/\r
85            buy_level_down=40;\r
86            buy_level_up=100;\r
87            sell_level_down=-100;\r
88            sell_level_up=-40;\r
89       case MOVEMENT_OPERATORS:      // 24\r
90            buy_level_down=40;\r
91            buy_level_up=100;\r
92            sell_level_down=-100;\r
93            sell_level_up=-40;\r
94    }\r
95    ticksize=MarketInfo(Symbol(), MODE_TICKSIZE);\r
96 }\r
98 int type_op()\r
99 {\r
100    if(get_data(indicator_tape,0)>=buy_level_down&&get_data(indicator_tape,0)<=buy_level_up)\r
101       return(OP_BUY);\r
102    if(get_data(indicator_tape,0)>=sell_level_down&&get_data(indicator_tape,0)<=sell_level_up)\r
103       return(OP_SELL);\r
104    else return(-1);\r